home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / utilities / pu090.dms / pu090.adf / readme < prev    next >
Text File  |  1991-05-04  |  12KB  |  323 lines

  1. IBEM is an IBM-PC emulator written to run on any Amiga (earlier versions
  2. required a 68020/68030 - this new version will work on ANY processor,
  3. though there is an optimised version for 020/030s included)
  4.  
  5. This is the demonstration version.  As a demonstration there is a
  6. limit on the Hard Disk size of 2MB.  There is also a time limit,
  7. which allows the program to run only for 15 minutes, at which time it
  8. will exit.  Only one floppy disk can be used with the emulator.  None
  9. of these restrictions apply for the complete version.
  10.  
  11. ====================================================================
  12.  
  13. IBeM Package     Version 1.05
  14. -----------------------------
  15.  
  16. Description:
  17.  
  18. This software package is an IBM PC-XT emulator for the Amiga.
  19. Unlike transformer which will only run on a 68000, this emulator
  20. has been designed to work only with any Amiga.  This emulator runs
  21. under AmigaDOS as a task and runs on its own screen in its own
  22. window.  Your Amiga is still free to perform other tasks while the
  23. emulator is running.
  24.  
  25. Setting up IBeM to run takes a little time, please read this file
  26. before trying to run IBeM.
  27.  
  28. Send all bug reports (and money) to:
  29.  
  30. Mark Tomlinson
  31. 30 Kirner St
  32. Christchurch 9
  33. New Zealand
  34.  
  35. or e-mail to:
  36.  
  37. tomlinson@elec.canterbury.ac.nz
  38.  
  39.  
  40. **************************************************************
  41.  
  42.  
  43.  
  44. This package consists of the following files:
  45.  
  46. IBeM                - the emulator itself.
  47. IBeM000             - the 68000/68010 version of the emulator.
  48. mountlist           - a sample mountlist
  49.  
  50. To be able to read and write IBM formatted disks you will also
  51. need messydisk.device or CrossDOS.
  52.  
  53. Messydisk.device is part of a shareware package known as MSH. 
  54. I have been using version 1.30, but other versions eg MSH1.5 may
  55. also work. (NB: MSH1.30 is the update to MSH1.5).
  56.  
  57.  
  58. I am also distributing MSH1.30 on the same disk as the emulator,
  59. but please remember that I did not write it, and the money you
  60. send to me for the emulator does not pay for MSH.  If you wish to
  61. send the developer of MSH payment, please look in the MSH
  62. directory for his address.
  63.  
  64.  
  65.  
  66.  
  67. **************************************************************
  68.  
  69.  
  70. Hardware required:
  71. ------------------
  72.  
  73. For the 020/030 version:
  74. ------------------------
  75.  
  76. An Amiga with a 68020/68030 (or 68040?) and a minimum of 2MB of
  77. fast ram.  This version will not work with the 68000.  The reason
  78. for requiring so much memory is that the emulator allocates a
  79. whole 1Meg for the IBM's address space.  A math co-processor is
  80. not required, but later versions of the Emulator may use one to
  81. emulate an 8087.  IBeM makes no use of the MMU so it will work on
  82. 68020 boards which don't include MMU's.
  83.  
  84. The 020 version is known not to work on early GVP accelerator
  85. boards, but a PAL (that's a logic array, not a display mode)
  86. upgrade is available from the manufacturer.  The reason for not
  87. working is that the emulator writes words at odd boundaries
  88. (since 8088's can do this), and while this is valid for 68020 and
  89. 68030 processors, the logic on the accelerator board must also
  90. support it.  As no extra hardware is required for this function
  91. (except for different contents in the PAL), its omission is
  92. simply an oversight of the developer.
  93.  
  94. For the 68000/68010 version:
  95. ----------------------------
  96.  
  97. Any Amiga computer.  This emulator will also run on 68020/030
  98. processors, but the version made specifically for these processors
  99. is more optimal and will run faster.  If you have a GVP
  100. accelerator board which does not run the 020/030 version, then
  101. you can still run the 68000 version.
  102.  
  103. This version does not require as much ram to run as the 020/030
  104. version - it will run on a 1M machine.  A3000 owners who have
  105. only 1M fast mem and 1M chip will also be able to use this
  106. version.
  107.  
  108. **************************************************************
  109.  
  110.  
  111. Emulation:
  112. ----------
  113.  
  114. Currently the emulator supports the full 8088 instruction set,
  115. (don't be confused by system information programs that say that
  116. it is a V20 - the extra V20 instructions are not yet, but may
  117. shortly be, emulated).
  118.  
  119. A CGA style screen with text and colour graphics is supported. 
  120. Full four page 80 column text or 8 page 40 column text are
  121. supported, as well as 4 colour lo-res and 2 colour hi-res display
  122. modes.  Flashing mode is not supported, use of this mode results
  123. in a high intensity background colour.
  124.  
  125. There is no sound, serial port or maths coprocessor emulated as
  126. yet (See update.txt for parallel port emulation).  The
  127. development of these functions will depend on the amount of
  128. support this product gets.
  129.  
  130. Most of the BIOS functions are implemented as illegal
  131. instructions which are then emulated by the Amiga.  There are no
  132. IBM ROM's buried inside the code.
  133.  
  134.  
  135. **************************************************************
  136.  
  137.  
  138. Disks for use under the emulator.
  139. ---------------------------------
  140.  
  141. You will need to create a mountlist entry for all the disk drives
  142. that you wish to use under the emulator.  The minimum is a single
  143. floppy (don't expect to be able to run ROM BASIC).
  144.  
  145. These entries are searched for in the devs:mountlist file.  The
  146. drives must be named (in upper case) IBMA:, IBMB:, and IBMC:. 
  147. Only two floppies and one harddisk (drive C) are supported.  The
  148. fields which the emulator uses are:
  149.     BlocksPerTrack
  150.     Surfaces
  151.     HighCyl
  152.     LowCyl
  153.     StartCyl
  154.     DosType
  155.     Device
  156.     Unit
  157.     Flags
  158.  
  159. All of these except for Flags are required, any extras are
  160. ignored by the emulator.  The DosType field is used for
  161. identifying the drive type.  It should be set to one of the
  162. following:
  163.   DosType = 1   5.25" 360K drive
  164.             2   5.25" 1.2M  drive
  165.             3   3.5"  720K  drive
  166.             4   3.5"  1.44M drive
  167.  
  168. The Flags is passed directly to the device driver.  Normally
  169. this is not used, but may have to be set to 1 for 5.25" disks
  170. (= TDF_ALLOW_NON_3_5).
  171.  
  172. Since extra fields are ignored by the Emultor, it is possible,
  173. simply by adding in a FileSystem, to be able to mount IBMA: and
  174. use it under AmigaDOS (as MSH was intended to be used), and also
  175. have it available under the emulator.
  176.  
  177. The device *must* support reading into fast ram.  Trackdisk
  178. Device does not no this, but messydisk.device does.  (Also,
  179. CrossDOS's mfm.device, which is the equivalent to messdisk.device
  180. uses  fast ram for buffers).  I have yet to see a hard disk which
  181. will not run into fast ram.
  182.  
  183. Don't expect to be able to read 1.44 Meg disks in the Amiga's
  184. internal floppy drive.  I don't even know that a 5.25" drive will
  185. give you a true 360K disk under messydisk.device.  The drive
  186. types 1.2M and 1.44M will only be possible if you somehow connect
  187. an IBM style controller to your machine and write a device driver
  188. for it.  It is probably possible to make a mount list entry which
  189. will allow you to format 880K amiga-readable MS-DOS file-system
  190. disks.  For this and other weird size drives, you will need to
  191. use DRIVER.SYS in order to format them on them emulator.
  192.  
  193. For hard disks the DosType field is ignored.  To create an IBM
  194. hard disk partition on the same drive as your Amiga partition,
  195. just set the HighCyl and LowCyl values such that the two do not
  196. overlap. If this means adjusting the size of your Amiga
  197. partition, you will have to back up your Amiga disk, change the
  198. disk's size (with prep or whatever software has been supplied for
  199. this) allowing room for the IBM's partition.  Partitions of over
  200. 32 Megabytes are valid, but these will have to be partitioned
  201. under FDISK when you run the emulator unless you try running DOS
  202. 4.0.
  203.  
  204. In any case, after the mountlist entry is set correctly, you will
  205. need to boot MS-DOS from the floppy, run FDISK (which will
  206. re-boot the emulator), and then run FORMAT.
  207.  
  208. Low-level formatting of harddisks is best done from the Amiga.
  209.  
  210.  
  211. Special Note for CrossDOS users.
  212. --------------------------------
  213.  
  214. CrossDOS can be used to allow you to read your hard disk
  215. partition under AmigaDOS.  MSH is also supposed to be capable of
  216. this, but I had no success with it.  To use it, you will need to
  217. create another mountlist entry.  Since, when you format your
  218. harddisk, a partition table is created, you have to point
  219. CrossDOS past this and at the beginning of the actual C
  220. partition.  The C partition starts on the next Track (*not*
  221. Cylinder) of the volume.  To specify the next cylinder, you need
  222. to fake the mountlist entry.  Specify only one Surface, and set
  223. the LowCyl = (lowcyl for IBMC: * actual number of heads) + 1.
  224. Also set HighCyl to (highcyl for IBMC: * heads + (heads - 1)).
  225. You should then be able to mount this and read your harddisk
  226. files directly, without even running IBeM.
  227.  
  228.  
  229. **************************************************************
  230.  
  231. Running the Emulator:
  232. ---------------------
  233.  
  234. To start the emulator, simply mount all the drives you wish to
  235. use, and then run IBeM.  It should print the messages "Using
  236. device IBMx:" as it finds them in the dos device list.  If you
  237. get the error message "No bootable disk's found", then you either
  238. haven't mounted the disks first, or else don't have an MS-DOS
  239. disk in the drive.
  240.  
  241. Since mounting the drives is always necessary, a script file
  242. called "run-ibm" mounts the drives and starts the emulator
  243. (returning to the CLI).
  244.  
  245. To quit the emulator at any time, simply press ctrl-alt-del.  The
  246. emulator will also quit if it encounters an illegal instruction
  247. while executing 8088 code (similar to the Amiga's GURU).  If this
  248. happens, the emulator will report the address where the error
  249. occured.
  250.  
  251. A command line option exists only for the 68000 version for amount
  252. of memory to use.  The amount specified should be a multiple of
  253. 64K and a maximum of 704K.  (eg typing "IBeM000 640" will emulate
  254. a standard 640K ibm).
  255.  
  256.  
  257. **************************************************************
  258.  
  259.  
  260. Technical Notes:
  261. ----------------
  262.  
  263. As stated above, illegal instructions are used to emulate the
  264. BIOS routines.  If you are using a debugger and come upon an
  265. instruction with hex code DB, just step over it, most debuggers
  266. will cope with this.
  267.  
  268. The timer interrupt (18.20...  times per second), is derived from
  269. the VBLANK frequency.  This means that the interrupts do not
  270. occur at regular intervals, but rather 2 or 3 VBlanks on a PAL
  271. system, or 3 or 4 VBlanks on an NTSC system.  The average time
  272. between ticks comes out right, but individual interrupts do not
  273. occur at regular intervals.  Also - if you change modes between
  274. NTSC and PAL, you can expect to get your clock running faster or
  275. slower.
  276.  
  277. The cursor is a sprite.  If you use a mouse blanker which
  278. actually kills all sprites, then the cursor will disappear as
  279. well.
  280.  
  281. Since IBM's don't know how to wait for an event, the processor
  282. is kept busy at all times (even in the BIOS function "wait for
  283. keypress").  To allow other tasks to be run at the same time, the
  284. emulator automatically switches its task priority to -20.  This
  285. means that any processor hungry applications which are running
  286. will lock out the emulator unless they too are set to a priority
  287. of -20 (to get sharing of the processor).  Editors, CLI's,
  288. calculators, etc, impact very little on the emulators
  289. performance.
  290.  
  291. Since it is easy to lock out the emulator from the CPU (with any
  292. other task), the emulator can get behind with its timer
  293. interrupts.  If this happens for less than 5 seconds it will
  294. recover however, a timer interrupt will occur every VBLank until
  295. the time has caught up.  This can be seen as a fast cursor flash. 
  296. Time will be lost however if the emulator is held off the CPU for
  297. more than about 5 seconds (256 VBlanks).
  298.  
  299. MS-DOS only sees the part of the disk which is stated in the
  300. mountlist.  It only knows about the part in the range LowCyl to
  301. HighCyl.  When the emulator writes to track 0 this gets
  302. translated to write physically at cylinder LowCyl.  So even if
  303. you have a partition on your hard drive between cylinders 415 to
  304. 612, FDISK will think you have a drive with 148 cylinders,
  305. starting from 0.
  306.  
  307.  
  308.  
  309. **************************************************************
  310.  
  311.  
  312. Known Bugs:
  313. -----------
  314.  
  315. Conditional branches which are at the end of the code segment and
  316. have a positive displacement will not branch to the beginning of
  317. the code segment as they are supposed to.  This was done for
  318. speed.  Short jumps do behave correctly however.  I have yet to
  319. see some software which this causes a problem.  Also, code which
  320. runs past the end of the code segment will not jump back to the
  321. beginning of the segment.
  322.  
  323.